(in-package :cl-user)

(defpackage :clml.statistics.rand

  (:use :cl)
  (:export ;; utilities.lisp
           :unit-random
           :bernoulli
           :int-power
           :half-integer-power
           :combination
           :dfloat
           :+bit-operation-m+

           ;; test
           :test-random-moment

           ;; rand.lisp
           :box-muller
           :gauss-polar
           :gauss-monty-python
           :gauss-monty-python-bit
           :gauss-ziggurat
           :gauss-ziggurat-bit
           :normal-random
           :gauss-half-ziggurat-bit
           :half-normal-random
           :cauchy-inverse
           :cauchy-polar
           :cauchy-polar-gauss
           :cauchy-monty-python
           :cauchy-monty-python-bit
           :cauchy-ziggurat-bit
           :cauchy-random
           :exp-inverse
           :exp-inverse-include-zero
           :exp-ziggurat-bit
           :exp-ziggurat-bit-include-zero
           :exp-random
           :laplace-inverse
           :laplace-ziggurat-bit
           :weibull-inverse
           :weibull-inverse-cached
           :weibull-random
           :gamma-inverse-shape-big
           :gamma-inverse-shape-big-cached
           :gamma-inverse-shape-small
           :gamma-inverse-shape-small-cached
           :gamma-inverse
           :gamma-compression-shape-big
           :gamma-compression-shape-big-cached
           :gamma-compression-shape-small
           :gamma-compression-shape-small-cached
           :gamma-compression
           :gamma-random
           :right-triangular-inverse
           :right-triangular-inverse-cached
           :right-triangular-compare
           :right-triangular-compare-cached
           :left-triangular-inverse
           :left-triangular-inverse-cached
           :left-triangular-compare
           :left-triangular-compare-cached
           :right-triangular-random
           :left-triangular-random
           :power-function-inverse
           :power-function-inverse-cached
           :power-function-with-gamma
           :power-function-with-gamma-cached
           :power-function-random
           :arcsine-inverse
           :arcsine-polar
           :arcsine-random
           :beta-random
           :erlang-convolution
           :erlang-convolution-include-zero
           :erlang-random
           :chi-square-convolution
           :chi-square-random
           :f-random
           :f-random-cached
           :t-with-gamma
           :t-with-gamma-cached
           :t-monty-python
           :t-monty-python-cached
           :t-monty-python-bit
           :t-monty-python-bit-cached
           :t-compression
           :t-compression-cached
           :t-random
           :logistic-inverse
           :logistic-ziggurat-bit
           :logistic-random
           :binomial-inverse
           :binomial-inverse-cached
           :binomial-inverse-mode
           :binomial-inverse-mode-cached
           :binomial-convolution
           :binomial-convolution-recycle
           :binomial-convolution-recycle-cached
           :binomial-convolution-coinflip
           :binomial-table
           :binomial-table-lookup
           :binomial-table-histogram
           :binomial-table-histogram-lookup
           :binomial-random
           :geometric-bernoulli
           :geometric-bernoulli-recycle
           :geometric-bernoulli-recycle-cached
           :geometric-bernoulli-coinflip
           :geometric-inverse
           :geometric-inverse-cached
           :geometric-inverse-exp
           :geometric-inverse-exp-cached
           :geometric-table-histogram
           :geometric-table-histogram-lookup
           :geometric-random
           :poisson-simulate
           :poisson-simulate-cached
           :poisson-simulate-exp
           :poisson-inverse
           :poisson-inverse-cached
           :poisson-inverse-mode
           :poisson-inverse-mode-cached
           :poisson-table-histogram
           :poisson-table-histogram-lookup
           :poisson-random
           :hypergeometric-simulate
           :hypergeometric-inverse
           :hypergeometric-inverse-cached
           :hypergeometric-inverse-mode
           :hypergeometric-inverse-mode-cached
           :hypergeometric-table-histogram
           :hypergeometric-table-histogram-lookup
           :hypergeometric-random
           :negative-binomial-compose
           :negative-binomial-compose-cached
           :negative-binomial-convolution-integer
           :negative-binomial-inverse
           :negative-binomial-inverse-cached
           :negative-binomial-inverse-mode
           :negative-binomial-inverse-mode-cached
           :negative-binomial-table-histogram
           :negative-binomial-table-histogram-lookup
           :negative-binomial-random))
